#ifndef __HEAD_H__
#define __HEAD_H__

#define MAXSIZE 100
#define USER_TYPE_NORMAL 0
#define USER_TYPE_ADMIN 1

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

// 商品信息结构体
typedef struct product {
    int id;      // 商品编号
    char name[20];    // 商品名称
    float price;      // 商品价格
    int stock;        // 库存数量
} Data_type;

// 构建双向循环链表的结点
typedef struct Node {
    Data_type info;
    struct Node *front;
    struct Node *next;
} Node_list, *Pnode_list;//Node_list：结点类型  Pnode_list：结点指针类型
//*Pnode_list等价于 Node_list*

// 用户信息结构体
typedef struct users {
    char username[20];
    char password[20];
    int user_type;  // 0-普通用户，1-管理员
} users;

// 构建双向循环链表的结点
typedef struct UserNode {
    users info;
    struct UserNode *front;
    struct UserNode *next;
} UserNode, *PUserNode;// *PUserNode等价于 UserNode*
//UserNode：结点类型  PUserNode：结点指针类型

// 函数声明
void dispmenue();
void dispmenue1();
void dispmenu1_1(Pnode_list H);
void dispmenu2(Pnode_list H, int user_type);
void dispmenue3(PUserNode currentUser, PUserNode userList);

void user_write_file(PUserNode head);
void user_read_file(PUserNode head);
void output_user_info(PUserNode head);
//导入项目头文件
#include "goods.h"
#include "list.h"
#include "users_list.h"
#include "users.h"
#include "utils.h"

#endif